Field
The described embodiments relate to computing devices. More specifically, the described embodiments relate to remote task queuing in networked computing devices.
Related Art
Some modern computing devices are configured to use a network connection between themselves and another computing device to send tasks (each task comprising one or more computational operations) to the other computing device to be performed by the other computing device. In this way, these computing devices are enabled to offload the tasks to the other computing device, thereby freeing the computing devices to perform other tasks.
In such a computing device, upon encountering a task that is to be sent to another computing device, the computing device (the “sending” computing device) prepares a protocol data unit with information about the task in accordance with a protocol used for the network connection between the computing devices. The sending computing device then sends the protocol data unit to the other computing device (the “receiving” computing device). In the receiving computing device, an operating system executed by a processing subsystem (e.g., a central processing unit (CPU), graphics processing unit (GPU), etc.) processes the protocol data unit to extract the information about the task and then adds the task to a task queue, from where the task is subsequently retrieved and performed.
Sending tasks to receiving computing devices as described above can be inefficient because the operating system (and thus the processing subsystem) in the receiving computing device is required to process the protocol data unit to extract the task information from the protocol data unit. For example, when the processing subsystem is in a lower-power state (sleep, etc.), it may be necessary to transition the processing subsystem to a higher-power state (full power, etc.) to process the received protocol data unit.
Throughout the figures and the description, like reference numerals refer to the same figure elements.